perm filename MSS.F4[XX,LCS]16 blob sn#257033 filedate 1977-01-11 generic text, type T, neo UTF8
00100	C  ********** DISPLAYS MUSIC AND DRAWS IT ON THE PLOTTER **********
00200	C *** READS DATA FROM CLEF0, BDR40,BDI40, ETC.
00300	
00400		IMPLICIT INTEGER(A-Q,S-Z)
00500		REAL DIS,DISX,A,B,STFF,CENTR,POS ,UD,XDIS
00600		COMMON /DL/X22,SAVER,NAME,EXT/RRJJ/RJJ2,RJJ(20)/FONT/JFONT
00700		DIMENSION LST(13),DP(-3/4),LX(14),LY(6)
00800		COMMON/RINP/R(10,80),RPOS(2,50) /RMOD/RMODE2,RSET4,IBEAM,
00900		1 NOSET,STEM,STUP,NTC,ENDP,RAD,RDD,ITB,POSB
01000		COMMON/FRMT/F78F(1),FA1(1),FA5(1),ASK/SIZ/RSZ,JCEN,KCEN
01100	C ORDER OF COMMON MUST! REMAIN AS IS (FOR DMP MODE READ)
01200		COMMON /STF/RSTFAC(-3/4),RSTJ2 /POSI/STFF(-3/4),JJ2,POS 
01300		COMMON/SCM/V(78),ISCR,LCNT,RSTF,LIST(200),REND
01400		1/ALF/INP(72),ML /UPDWN/ RL,UD
01500		COMMON /PLTR/PLT,RHT,DIS,XDIS/PTR/PWDS(250),ITEM,L,I,IX
01600		COMMON R2,JA,CENTR,J2,RJQ(20),JQ(20)
01700		COMMON/XRN/RN(2000)/DPY/ST(4000),WDS(250),MEDIT,IGO	
01800		EQUIVALENCE (J3,JQ(1)),(J4,JQ(2)),(J5,JQ(3)),(R5,RJQ(3))
01900		1,(R6,RJQ(4)),(J10,JQ(8)),(J6,JQ(4)),(R4,RJQ(2)),(IT,LY(6))
02000		1,(R3,RJQ(1)),(I2,INP(2)),(I1,INP(1)),(LX(8),IL),(I3,INP(3))
02100		1,(R11,RJQ(9)),(NJR,R10,RJQ(8)),(R8,RJQ(6)),(RJ3,RJJ(1))
02200		1,(R9,RJQ(7)),(IR,LX(11)),(IU,LX(13)),(RX3,RJQ(20)),(IA,LX(1))
02300		1,(ST2,ST(2)),(IBL,LY(1)),(R13,RJQ(11)),(J13,JQ(11))
02400		1,(IE,LX(4)),(IP,LX(10)),(IM,LX(9)),(II,LX(6)),(IS,LX(12))
02500		1,(LX(2),ICC),(LX(5),IG),(LX(3),ID),(LX(14),IXX),(IPOS,POS)
02600		DATA STFF/-369.0,-246.0,-123.0,0.0,123.0,246.0,369.0,450.0/
02700		1 ,LST/'NOTE','REST','CLEF','LINE','SLUR',
02800		1 'BEAM','TRILL','STAFF','MISC','NUMB','WORD','KSIG','METER'/
02900		1,DP/8*1/,LX/'A','C','D','E','G','I','J','L','M','P','R',
03000		1 'S','U','X'/
03100		1,LY/' ','A','B','D','E','T'/, DIS/1.0/, RHT/1.0/
03200	
03300		CALL SEGFIX
03400	C  FOR UPPER SEGMENTS USED BY MORE THAN 1 JOB (SEGFIX.FAI[TVR])
03500		LCEN=0
03600		MCEN=0
03700	CP	TOP2=-999
03800	C  IF -1, THEN TRUE OUTLINES OF FONTS ARE DISPLAYED.
03900		I1=0
04000	CP	DIS=1.
04100	CP	RHT=1.
04200	C  FOR 'FILLER' ON CRT.
04300	2	CALL DPYSET(1,ST,4000)
04400		CALL HYDPOG(2)
04500		CALL HYDPOG(1)
04600		CALL TYPLOC(-180,-511)
04700		CALL DPYBRT(5)
04800		DO 299 K=1,I
04900	CLEARS ARRAY FOR RESTART OF 'SETUP' ROUTINE
05000	299	RN(K)=0
05100		JFONT=0
05200		IX=0
05300		RSET4=999
05400		QUICK=0
05500		UD=1
05600		RL=1
05700		FSCN=IL
05800		RPOS(1,1)=0
05900	CP	PLOTIT=0
06000		RSZ=.845
06100	CP	TOP=-999
06200	CP	BOT=999
06300		X22=0
06400		JCEN=0
06500		KCEN=0
06600		PLT=0
06700		PWDS(1)=1
06800		EDX=-1
06900		RN(2)=0
07000	C  FOR RESTART.  AVOIDS STAFF CODE NUM.
07100		SAVER=7
07200		DO 1402 K=-3,4
07300	1402	RSTFAC(K)=1.
07400		REDIT=999.
07500		M=1
07600		ITEM=0
07700		ZERO=-1
07800		WDS(1)=4
07900	C  DATA IN DPY ARRAY STARTS AT WD.4!
08000		I=1
08100	1100	SCORE=-1
08200	58	IGO=-1
08300		IF(I1.NE.'R')GO TO 5505
08400		CALL FORMAT(NAME)
08500		IF(NAME.NE.IBL)GO TO 1221
08600	C YOU CAN TYPE 'RS NAME' FOR QUICK RESTARTS
08700		GO TO 5505
08800	
08900	11	CALL NOTWRT
09000	CP57	IF(PLT)GO TO 6120
09100	57	IF(M.GT.I)GO TO 571
09200		IF(IGO)CALL DPYOUT(1)
09300	571	ITEM=ITEM+1
09400		IF(ITEM.LT.250)GO TO 17
09500		TYPE 170,ITEM
09600		I=PWDS(250)
09700		ITEM=249
09800		ST2=WDS(250)
09900		CALL DPYOUT(1)
10000		GO TO 1100
10100	170	FORMAT(2(' **** TOO MANY ITEMS ',I3,'/249'/))
10200	17	IF(IGO.GT.0)GO TO 20000
10300		K=ST2
10400		IF(X22.EQ.0)GO TO 20000
10500		CALL BOX(IBOX,RBOX)
10600		ST2=K
10700	20000	WDS(ITEM+1)=ST2
10800		IF(EDX.EQ.-1)GO TO 1571
10900		IF(M.LT.I)GO TO 6120
11000	CP1571	IF(PLOTIT.EQ.-2)GO TO 2311
11100	C  SL=SAVE AFTER RESETTING LENGTH OF PAGE.  (SEE I2 IN SCX)
11200	1571	PWDS(ITEM+1)=I
11300		PLT=0
11400		IF(IGO.NE.0)GO TO 55
11500		CALL DPYOUT(1)
11600		IF(SCORE.EQ.0)GO TO 9532
11700	C  GO GET MORE FROM SCX.
11800		IGO=-1
11900	
12000	55	IF(SCORE.EQ.0)GO TO 653
12100	CC55	IF(SCORE.EQ.0)GO TO 553
12200	5505	SVST=ST2
12300	C CATCHES TYPO WITH 'C'
12400		K=ITEM+1
12500		IF(X22.EQ.0)GO TO 5503
12600	C 'N' SUPPRESSES TYPE-OUT, 'P' OR NEW ITEM RESTORES IT.
12700		IF(QUICK)5911,210,10
12800	C -1=QUICK MODE, +1=SUPPRESS TYPE-OUT OF PARAMS
12900	210	K=X22
13000		L=RN(MEDIT+1)
13100		IF(L.EQ.13)L=11
13200	CC	IF(L.EQ.10)L=9
13300	CC	IF(L.GE.16.AND.L.LE.18)L=L-5
13400		IF(L.GE.11)L=L-1
13500		IF(L.GE.15)L=L-4
13600	CC	IF(L.EQ.20)L=12
13700		TYPE 427,LST(L),(RN(L),L=MEDIT+1,MEDIT+3)
13800		IF(YED.LT.2)GO TO 59
13900	CP	IF(YED.LT.2)GO TO 5504
14000	C   YED IS SET AT 426
14100		DO 5501 L=4,YED+2
14200	5501	TYPE 4271,L,RN(MEDIT+L)
14300		GO TO 59
14400	
14500	5919	FORMAT(' ;=LFT :=RT (=UP )=DN /=HALF *=*2'/)
14600	591	QUICK=-1
14700		TYPE 5919
14800	5911	CALL FSCAN
14900	C FNUM.FAI=FAST COMMANDS ;=← :=→ (=↑ )=↓ /=HALF *=*2 X=X C=C OTHERS=CR
15000		GO TO 1591
15100		GO TO 2591
15200		GO TO 3591
15300		GO TO 4591
15400		GO TO 5913
15500		GO TO 6591
15600		GO TO 7591
15700		GO TO 5912
15800		I1=0
15900	5591	QUICK=0
16000		GO TO 5917
16100	5503	CALL HYDPOG(3)
16200	C  TO DELETE VERTICAL LINE (55)
16300		KED=0
16400		QUICK=0
16500	C  RESET PARAM TYPE-OUT
16600	59	TYPE 56,NAME,K,I,SVST
16700	10	JAB=JA
16800		SCORE=-1
16900		ACCEPT 89,INP
17000	5917	DO 1313 L=1,14
17100	1313	IF(I1.EQ.LX(L))GO TO 2313
17200		GO TO 310
17300	C  'SA'=SAVE; 'S'=SET; 'SB'=SAVE BIG; 'ST'=STAFF; 
17400	2313	IF(X22.NE.0)GO TO(884,883,883,5313,87,87,87,883,87,87,883
17500		1,15,883,883),L
17600	CP	GO TO(87,13,7555,14,5313,120,884,7555,883,7555,311,883,15,883
17700		GO TO(13,7555,14,5313,120,87,7555,883,7555,87,883,15,883
17800		1,59),L
17900	C               A  C   D   E   G   I   J    L   M   P   R   S  U(X
18000	C  HERE A=ALTER A GROUP, DE=DELETE A GROUP
18100	C  'DP'=DISPLAY OR HIDE WHICH STAVES.  D=DOWN N
18200	14	IF(I2-IE)883,13,884
18300	13	IF(I2.EQ.ID)GO TO 884
18400	C  'AD' = ADJUST STEMS TO MEET BEAMS (CODE# 19)
18500		IGO=1
18600		CALL GRED
18700		JFONT=0
18800		IF(JA.EQ.98)GO TO 5533
18900		KNT=0
19000		SCORE=0
19100		GO TO 653
19200	
19300	1591	I1=IL
19400	9591	FSCN=I1
19500		GO TO 5917
19600	2591	I1=IR
19700		GO TO 9591
19800	3591	I1=IU
19900		GO TO 9591
20000	4591	I1=ID
20100		GO TO 9591
20200	7591	I1=IXX
20300		GO TO 5591
20400	5912	I1=ICC
20500		GO TO 5591
20600	5913	I1=FSCN
20700		IF(FSCN.EQ.IL)GO TO 5914
20800		IF(FSCN.EQ.IR)GO TO 5914
20900	C NEXT FOR UP-DOWN
21000		UD=UD/2
21100		GO TO 5917
21200	5914	RL=RL/2
21300		GO TO 5917
21400	6591	I1=FSCN
21500		IF(I1.EQ.IL)GO TO 5916
21600		IF(I1.EQ.IR)GO TO 5916
21700		UD=UD*2
21800		GO TO 5917
21900	5916	RL=RL*2
22000		GO TO 5917
22100	
22200	
22300	C  'S'=SET, SA=SAVE, SB=SAVE BIG, SM=BIG+SAME NAME, ST=STAFF, SP=SPC STF.
22400	C  SC=SPACING SCALE ABOVE STAFF n (99=DELETE IT)
22500	15	DO 3313 L=1,6
22600	3313	IF(I2.EQ.LY(L))GO TO(312,3121,3121,3121,312,884),L
22700	C                               BL  A    B     D    E   T
22800		IF(I2.EQ.ICC)GO TO 884
22900		IF(I2.EQ.IP)GO TO 87
23000		IF(I2.EQ.'H')JFONT=1
23100		IF(I3.EQ.IXX)JFONT=0
23200		IF(I3.EQ.IP)JFONT=-1
23300		IF(I3.EQ.'O')JFONT=-2
23400		IF(I3.EQ.II)JFONT=-3
23500	C  'SH'(=SHOW) IS SAME AS 44 1.  SHOWS TYPE FONTS ON DPY.
23600	C  'SHP' = SHOW ONLY AS 'PRIMATIVE' FONT, 'SHX' = CANCEL FONTS ON DPY.
23700	C  'SHO' = FONT SET (TEMPORARILY) TO 'BDR'; 'SHI' = 'BDI' (ITALICS)
23800		IF(I2.NE.IM)GO TO 5505
23900	C  ONLY FOR ST, SA, SB, SM, RS, S
24000	3121	IF(X22.NE.0)GO TO 5505
24100		SAVER=7
24200		CALL SAVIT
24300		GO TO 5505
24400	312	JA=55
24500		R2=RN(MEDIT+3)
24600	C  POSITION OF ITEM LOOKED AT.
24700		R3=55.
24800		GO TO 6531
24900	C  ABOVE FOR 'S'ET ALIGNMENT
25000	C  'S'=SET ALIGNMENT, 'A'=ALIGN IT.  'M'=MOVER 'C'= COPIER
25100	C  'E'=EDIT; 'I'=ITEM; 'G'=GET; 'GM'=GET MORE;
25200	5313	IF(I2.NE.IXX)GO TO 6313
25300		JA=EXT
25400	C TYPE 'EXT NNN'  TO PUT .NNN AS EXTENSION ON OUTPUT FILES.(.DMD=DEFAULT)
25500		REREAD 1885,K,EXT
25600		IF(EXT.NE.IBL)GO TO 5505
25700		EXT=JA
25800	C  TYPE 'EXT' ONLY TO SEE WHAT IS CURRENT EXT.
25900		TYPE 1885,IBL,EXT
26000		GO TO 5505
26100	1885	FORMAT(A4,A3)
26200	6313	K=-1
26300		DO 882 JA=3,10
26400	882	IF(INP(JA).NE.IBL)GO TO 884
26500		GO TO 883
26600	885	FORMAT(A2,21F)
26700	884	REREAD 885,K,R2,RJQ
26800		JA=55
26900	CC	IF(I1.EQ.II)JA=22
27000		IF(I2.NE.ICC)GO TO 101
27100		CALL SCL
27200		GO TO 5505
27300	101	IF(I2.NE.ID)GO TO 988
27400		IF(I1.EQ.IA)JA=19
27500	C  'AD'just stems to beams.
27600	988	IF(I2.EQ.IT)JA=44
27700		IF(I2.EQ.'N')GO TO 188
27800		IF(I2.NE.IP)GO TO 6531
27900		IF(R2.GT.5)GO TO 1886
28000	C  GO BACK AND RESET ALL
28100		K=R2
28200		JA=0
28300	C  USE '5' FOR STAFF 0.
28400	888	IF(K.EQ.5)K=0
28500		DP(K)=-DP(K)
28600		JA=JA+1
28700		K=RJQ(JA)
28800		IF(K.EQ.0)GO TO 55
28900	C  JUMP OUT IF RJQ(JA)=0 OR 99
29000		IF(K.EQ.99)GO TO 85
29100	C*** 3/74  END WITH '99' TO MAKE DP RIGHT NOW!
29200		GO TO 888
29300	C  TO GET BACK ALL LINES TYPE 6+
29400	311	JA=0
29500		IGO=1
29600		ML=0
29700		IF(I2.NE.IL)GO TO 884
29800	1886	DO 2886 K=-3,4
29900	2886	DP(K)=1
30000		GO TO 85
30100	CP	IF(I1.NE.IP)GO TO 8851
30200	C PL RESETS 'DP'
30300	C  TO GET BACK OTHERS - 'DPY N' AGAIN WILL DO.
30400	CP2311	CALL PLTCMD
30500	CP	IF(PLOTIT.EQ.0)GO TO 3005
30600	CP	I1=IP
30700	CP	PLOTIT=-1
30800	CP	GO TO 6531
30900	C  'PL' GOES TO 'PLOT COMMAND' ROUTINE
31000	
31100	881	IF(I1.GT.0)GO TO 87
31200	C   JUMP IF I1 IS NOT A LETTER (K>0=NUM, K<0=LET.)
31300	
31400	C NEXT FOR READ, RS, DEL, L,R,U,D
31500	883	IF(I1.EQ.IR)GO TO 8835
31600		IF(IX.EQ.I)GO TO 8834
31700	C  CAN'T DELETE ('DE') AFTER A PARAM HAS BEEN CHANGED. START OVER.
31800		IF(I2.NE.IE)GO TO 8831
31900		GO TO 5505
32000	8835	IF(I2.EQ.IS)GO TO 2
32100	C  TYPE 'RS' TO RESTART.
32200		IF(I2.NE.IE)GO TO 8831
32300	C  'READ' IS SAME AS 144
32400		JA=144
32500		GO TO 88
32600	8834	IF(I1.EQ.ICC)GO TO 72
32700	8831	IF(JA.NE.16)GO TO 8832
32800		IF(X22.EQ.0)GO TO 5505
32900	C  CAN'T MOVE LETTERS OR 'SCORE' ENTRIES UNLESS REALLY IN EDIT MODE!
33000	8832	CALL EDIT(JJA)
33100		IF(JA.NE.99)GO TO 6531
33200		CALL DELETE
33300	C  DELETE ROUTINE COULD BE PUT DIRECTLY IN HERE.
33400		GO TO 425
33500	89	FORMAT(72A1)
33600	C  TYPE L, R, U OR D OR EDIT TO MOVE LAST ENTERED ITEM.
33700	
33800	CC101	CALL SCL
33900	CC	GO TO 5505
34000	CC221	JFONT=R2
34100	C JA=44 IS FOR JFONT (DISPLAY FONT OUTLINES)-WIPED OUT BY '24' ETC.
34200	CC  OUT 3/1/76	GO TO 5505
34300	
34400	310	IF(I1.EQ.'N')GO TO 410
34500		IF(X22.EQ.0)GO TO 87
34600		IF(I1.EQ.'Q')GO TO 591
34700		GO TO 87
34800	410	IF(QUICK.NE.0)GO TO 510
34900	C ↑↑↑ SO 'N n' WILL WORK EVEN AFTER N HAS BEEN SET.
35000		QUICK=1
35100	C TYPE 'N'  =NO-TYPE PARAMS  TO SUPPRESS TYPE-OUT WHILE EDITING.
35200		IF(X22.NE.0)GO TO 87
35300	510	I1=II
35400	C  'N n' WHEN NOT IN EDIT MODE = 'I n'<CR>,'N'<CR>
35500	87	REREAD 1,JA,R2,RJQ
35600		IF(I1.NE.II)GO TO 610
35700		IF(I2.EQ.'N')GO TO 884
35800	C  'IN n,n,n,' MUST BE READ AGAIN AT 884 TO GET n'S CORRECTLY.
35900		JA=22
36000		GO TO 6531
36100	610	IF(K)JA=55
36200	C   ED 47 -1 = 55 47 -1, ETC.
36300		IF(JA.EQ.101)GO TO 101
36400	CC	IF(JA.EQ.44)GO TO 221
36500	CC	IF(JA.EQ.14)GO TO 88
36600	C  IS THERE A BUG CONCERNING SAVIT AND 'SCORE'????
36700	CC	IF(JA.EQ.144)GO TO 88
36800	CC	IF(JA.EQ.444)GO TO 440
36900		IF(I1.NE.'N')GO TO 710
37000		IF(R2.NE.0)GO TO 510
37100	C IF NO NUM FOLLOWS 'N' GO PRINT OUT CURRENT PARAMS.
37200		GO TO 10
37300	710	IF(I1.EQ.'Z')GO TO 24
37400	C  'Z' = ZOOM  (OLD CODE# 24)
37500		IF(I2.NE.IP)GO TO 441
37600		RSET4=R3
37700	C SPn SETS "SETUP" STAFF NUMBER
37800		GO TO 5505
37900	C  'SP' IS SAME AS 444
38000	441	IF(I1.EQ.IP)GO TO 33
38100	C  'P n' = PRINT CURRENT CONTENTS OF PARAM n. (ONLY WHILE IN EDIT MODE.)
38200		IF(I1.NE.IT)GO TO 110
38300		IF(X22.EQ.0)GO TO 288
38400		QUICK=0
38500	C TYPE 'T' TO RESET PARAM TYPE-OUT
38600		IF(R2.EQ.0)GO TO 5505
38700		GO TO 510
38800	110	IF(JA.GT.0)SAVER=SAVER-1
38900		IF(X22.NE.0)GO TO 6531
39000		IF(SAVER)CALL SAVIT
39100	C  SAVES EVERY 7TH TIME AROUND
39200		IF(JA.EQ.0)GO TO 5505
39300	C  CATCHES ZEROS AND LOWER CASE LETTERS.
39400		GO TO 6531
39500	C NEXT FOR ALPHA TEXT ITEMS.  'T'=TYPE
39600	288	JA=16
39700		M=I
39800		CALL WORDS
39900		SAVER=SAVER-1
40000		GO TO 8852
40100	CC8833	IF(JA.EQ.14)GO TO 88
40200	CC	IF(JA.EQ.144)GO TO 88
40300	CC8833	IF(JA.NE.16)GO TO 6531
40400	
40500	CC188	R3=0
40600	CC88	SET4=R3
40700	C  *** THIS FEATURE CHNGD. 6/75***SET4 IS NEG. FOR AUTOMATIC STAFF 4 SETUP.
40800	188	IF(X22.NE.0)GO TO 5505
40900		JA=14
41000		RMODE2=R3
41100	C  TYPE 'IN STF# MODE' ETC.  -- SAME AS 14 STF#.
41200	88	SCORE=0
41300		IF(JA.NE.14)GO TO 889
41400	C NEXT PUTS UP STAFF IF IT WASN'T THERE ALREADY
41500		SAVER=-1
41600		RSTF=R2
41700		IF(R3)R3=0
41800		DO 1889 K=1,ITEM
41900		J=PWDS(K)
42000		IF(RN(J+1).NE.8)GO TO 1889
42100		IF(RN(J+2).EQ.R2)GO TO 890
42200	1889	CONTINUE
42300	C DIDN'T FIND THIS STAFF
42400		M=2000
42500		IGO=0
42600		JA=8
42700		R3=0
42800		GO TO 6531
42900	890	JA=14
43000		ITCHK=ITEM
43100		ICHK=I
43200		IDPY=ST2
43300	C ALL THIS FOR BACKUPS
43400	889	SPD=ST2
43500		JIT=ITEM
43600		ISC=I
43700		REND=0
43800	C   RETAINS ORIGINS OF SCORE SQUENCE
43900	9532	IF(REND.EQ.2)GO TO 889
44000	C  FOR READIN CONTINUATION.
44100		M=ISC
44200	9533	IF(JA.EQ.8)GO TO 890
44300		IF(REND)GO TO 9535
44400	C REND=0 GO,  -1=NORMAL END,  1=ABORTED.
44500		CALL SCMSS
44600		IF(REND.EQ.1)GO TO 9535
44700		IF(REND.NE.99)GO TO 9534
44800		I=ICHK
44900		ITEM=ITCHK
45000		ST2=IDPY
45100		CALL ACCPOG(1)
45200		CALL DPYOUT(1)
45300		GO TO 9535
45400	9534	ITEM=JIT
45500		J=M
45600	9536	ITEM=ITEM+1
45700		PWDS(ITEM)=J
45800		J=J+RN(J)+3
45900		IF(J.LT.I)GO TO 9536
46000		IF(IBEAM)GO TO 9537
46100		R13=0
46200		R2=RSTF
46300		JA=19
46400		J3=0
46500		CALL HOMER
46600	9537	ITEM=JIT
46700		ST2=SPD
46800		GO TO 8852
46900	9535	SCORE=-1
47000		IGO=-1
47100		JA=16
47200	C  FOR TRAP AT 'EDIT'
47300		GO TO 5505
47400	
47500	CC553	IF(SCORE)GO TO 6531
47600	653	KNT=KNT+1
47700	C   NUM OF ITEMS IN LIST
47800		R11=0
47900		R10=0
48000		R9=0
48100		JA=R(1,KNT)
48200		R2=R(2,KNT)
48300		IF(JA.NE.0)GO TO 550
48400	C  =0 MEANS NO MORE ITEMS.
48500		CALL DPYOUT(1)
48600		GO TO 1100
48700	
48800	5533	X22=0
48900		IGO=-1
49000		CALL DPYNEW
49100		GO TO 55
49200	
49300	550	DO 7531 K=1,6
49400	7531	RJQ(K)=R(K+2,KNT)
49500	CCX	RJQ(9)=R(2,KNT)
49600	CCX P11 INFO (MARKS) WAS STORED IN P2 (STAFF # IS IN RSTF)
49700	6531	M=1
49800		EDX=-1
49900		IF(JA.EQ.222)GO TO 72
50000		IF(JA.EQ.2222)GO TO 73
50100		DO 5532 K=1,20
50200	5532	JQ(K)=RJQ(K)
50300	CC	J2=R2  DOES THIS AT 60
50400	CP7542	IF(I1.EQ.IP)GO TO 590
50500	C  X22= ITEM# WHEN EDITING OR DELETING.
50600		IF(X22.NE.0)GO TO 5511
50700		IF(JA.GT.0)GO TO 155
50800		IF(R2.EQ.0)GO TO 5505
50900	C  FOR UP, DOWN, LEFT, RIGHT
51000		RJJ2=J2
51100		GO TO 6221
51200	C  GOES BACK IF NEGATIVE AND NOT IN EDIT MODE.
51300	CC155	IF(JA.EQ.24)GO TO 24
51400	155	IF(JA.EQ.22)GO TO 42  
51500		IF(JA.EQ.44)GO TO 44
51600	C  THIS '44' IS SET IN 'EDIT' - IT'S NEVER TYPED.
51700		IF(JA.EQ.55)GO TO 554
51800	CC	IF(JA.EQ.333)GO TO 6333
51900		IF(JA.NE.19)GO TO 60
52000	271	CALL HOMER
52100		GO TO 8853
     

00100	33	IF(X22.EQ.0)GO TO 6333
00200	C  WHEN NOT IN EDIT MODE(X22=0) "P n n2" LISTS ALL PARAMS FOR ITEMS n→n2.
00300		J2=R2
00400		TYPE 331,J2,RJJ(J2-2)
00500	C  TYPE P n TO SEE FULL CONTENTS OF PARAM. n.
00600		GO TO 5505
00700	331	FORMAT(I,F15.5)
00800	
00900	24	IF(X22.NE.0)GO TO 5505
01000		JA=24
01100	C  CAN'T DO ZOOM WHILE IN EDIT MODE
01200		IGO=0
01300	CC	CALL HYDPOG(2)
01400	C  TO ERASE SPACING SCALE.
01500	CC	IF(X22.EQ.0)GO TO 23
01600	CC	R2=RHORZ(RN(MEDIT+3))
01700	CC	M=RN(MEDIT+2)
01800	CC	R4=RN(MEDIT+4)*RSTFAC(M)+STFF(M)
01900	CC	ITEM=ITEM-1
02000	C  PICKS UP POINT FROM CURSOR IN 'BOX'
02100	CC	CALL CLRCUR
02200	CC	X22=0
02300	CC	GO TO 241
02400	23	IF(R2.LT.100)GO TO 2410
02500		R5=AMOD(R2,100.)
02600		R2=(R2-R5)/100.
02700		R3=1000.*R5-500.
02800		R4=R2*50.
02900	C TYPE 24 200.5 FOR 1ST HALF OF DOUBLE, 301 FOR LAST THIRD OF TRIPLE
03000	2410	IF(R2.NE.0)GO TO 241
03100		IGO=-1
03200	243	R2=1.
03300	C TO REDISPLAY WITH MAGNIFICATION - OR JUST RUN THROUGH DATA.
03400	241	RSZ=.845*R2
03500		JCEN=R3*RSZ
03600		KCEN=R4*RSZ
03700	C  NEXT TO RECONSTITUTE SPACING SCALE.
03800		IF(R2.EQ.1)GO TO 3312
03900		R2=(R4-100.)/100.
04000		IF(R2.LT.-3)R2=-3
04100	C  WE DON'T WORRY IF IT'S TOO HIGH (YET).
04200	3312	R4=0
04300		CALL SCL
04400		R2=0
04500		R3=0
04600		R4=0
04700		LCEN=0
04800		MCEN=0
04900	CC	RJSZ=1.
05000	C IF P5 ≠ 0 GOES THROUGH DATA IN OLD WAY.
05100		JFONT=0
05200	85	M=1
05300		I=PWDS(ITEM+1)
05400		ITEM=0
05500	8552	ST2=3
05600	8852	PLT=1
05700		EDX=0
05800		CALL ACCPOG(1)
05900		IF(JA.EQ.0)GO TO 6120
06000		IF(JA.NE.24)IGO=0
06100		GO TO 6120
06200	
06300	6333	CALL LISTP(LST)
06400		GO TO 5505
06500	
06600	172	CALL JUGGLE
06700		CALL CLRCUR
06800		CALL DPYNEW
06900		IF(JA.EQ.22)GO TO 424
07000	C  FOR MOVING DIRECTLY TO NEW ITEM IN EDIT MODE.
07100		IF(ZERO)GO TO 55
07200		X22=ZERO
07300		ZERO=-1
07400		IF(JA.EQ.55)GO TO 554
07500		IF(JA.EQ.44)GO TO 44
07600		IF(KED.NE.0)GO TO 244
07700		GO TO 425
07800	
07900	C  55,POS  -- SETS UP ALIGNMENT
08000	554	CALL BOX(-1,R2)
08100		IF(J4.EQ.0)KED=-1
08200		RITEM=R4
08300	C  FOR 'ED POS., STF., CODE#'
08400		IF(J3.GT.4)KED=-2
08500		RLINE=R2
08600		R2=R3
08700		GO TO 45
08800	
08900	C  '22,0' EDITS LAST ITEM ENTERED
09000	42	REDIT=999.0
09100		IF(R2.NE.0)GO TO 242
09200		X22=ITEM
09300		GO TO 429
09400	44	KED=1	
09500		RITEM=R3
09600	C  'ST', STF#, CODE# (IF 0, ALL ITEMS COME UP) - STF>4 = ALL STAVES.
09700		IF(R2.GT.4)KED=2
09800	45	REDIT=R2
09900	C  THE STAFF #
10000		JED=1
10100	244	X=ITEM  
10200		IF(JED.GT.X)GO TO 444
10300		DO 144 K=JED,X
10400		L=PWDS(K)
10500		IF(KED.EQ.-2)GO TO 654
10600	C  -2 LOOKS AT ALL ITEMS NEAR VERT. LINE, -1 ON SINGLE STAFF.
10700		IF(KED.EQ.2)GO TO 656
10800		IF(RN(L+2).NE.REDIT)GO TO 144
10900		IF(KED)GO TO 654
11000		IF(RITEM.EQ.0)GO TO 655
11100	656	IF(RITEM.NE.RN(L+1))GO TO 144
11200	655	IF(JA.NE.55)GO TO 344
11300	654	IF(ABS(RLINE-RN(L+3)).LT.5.0)GO TO 344
11400	144	CONTINUE
11500	444	REDIT=999.
11600	C  NO MORE ON LINE
11700		R2=0
11800	C   SO IT WILL RETURN IF NOTHING IS FOUND WITH 'ED' OR 'ST'.
11900		GO TO 73
12000	344	JED=K+1
12100	C  FOR NEXT TIME AROUND
12200		X22=K
12300		GO TO 429
12400	C  CR MOVES ALONG GIVEN LINE,  222 LEAVES THIS MODE
12500	
12600	91	CALL ACCPOG(1)
12700		IF(I.EQ.IX)ITEM=ITEM-1
12800		GO TO 142
12900	242	IF(X22.GT.0)GO TO 5511
13000	142	IF(R2.NE.0)GO TO 424
13100		IF(REDIT.EQ.999)GO TO 1554
13200		IF(JA.GE.0)GO TO 244
13300	1554	X22=X22+1
13400		IF(JA)X22=X22-1+JA
13500		IF(X22.LT.1)X22=1
13600		GO TO 425
13700	427	FORMAT(1XA5/,2F6.0,F10.2,$)
13800	4271	FORMAT('+  (',I2,')',F7.2,$)
13900	
14000	C  FOR EDITING
14100	5511	IF(JA.EQ.55)GO TO 420
14200	220	IF(JA.NE.22)GO TO 720
14300	C  'I, #' WILL MOVE TO ANOTHER ITEM WHEN ALREADY IN EDIT MODE.
14400		KED=0
14500		JED=0
14600		GO TO 72
14700	720	IF(JA.EQ.44)GO TO 420
14800	CC 3/76 	IF(JA.EQ.33)GO TO 33
14900	CC	IF(JA.EQ.24)GO TO 24
15000	C  FOR '24' WHILE IN EDIT MODE.  MAGS WITH CURSOR AS CENTER.
15100		IF(JA.GT.100)GO TO 4221
15200		IF(JA.GT.13)GO TO 5505
15300	C  PARAM NUM TOO HIGH?  LOOKS FOR NEXT ITEM TO EDIT IF <CR>
15400	4221	IF(X22.EQ.0)GO TO 5517
15500		IF(R2.NE.0)GO TO 5517
15600	C  BACKS UP WHEN IN EDIT MODE.
15700	
15800		IF(JA.GT.0)GO TO 5518
15900		IF(I.EQ.IX)GO TO 91
16000		ZERO=X22+1
16100	C  '0' AFTER AN EDIT ENDS THE EDIT AND GETS NEXT ITEM FOR EDIT.
16200	72	IF(X22.EQ.0)GO TO 55
16300		IF(KED.EQ.0)REDIT=999.
16400	320	IF(I.NE.IX)GO TO 172
16500		ITEM=ITEM-1
16600	C  TO DELETE AN ITEM
16700	73	X22=0 
16800		CALL CLRCUR
16900		CALL DPYNEW
17000		IF(REDIT.EQ.999.)GO TO 428
17100		IF(JA.EQ.55)GO TO 554
17200		IF(JA.EQ.44)GO TO 44
17300	428	IF(R2.EQ.0.OR.R2.GT.ITEM)GO TO 55
17400	C  DELETION IN EDIT MODE DOES NOT LEAVE MODE.
17500	424	X22=R2
17600	425	IF(X22.GT.ITEM)GO TO 73
17700	C  LEAVES EDIT MODE.
17800	429	IX=I
17900		MEDIT=PWDS(X22)
18000		J=2
18100	426	Y=RN(MEDIT)+J
18200		CALL LOOP(0,Y,1,I,MEDIT,RN)
18300		JJA=RN(I+1)
18400		YED=Y-2
18500		L=I+2
18600		DO 422 K=1,11
18700		IF(K.GT.YED)GO TO 423
18800		RJJ(K)=RN(L+K)
18900		GO TO 422
19000	423	RJJ(K)=0
19100	422	CONTINUE
19200		RJJ2=RN(L)
19300		IF(IGO.GT.0)GO TO 4231
19400	C  NO BOX WHEN IN GROUP EDIT ROUTINE
19500		IBOX=I
19600		RBOX=RJJ2
19700		CALL BOX(IBOX,RBOX)
19800	4231	ITEM=ITEM+1
19900		ST2=WDS(ITEM)
20000		GO TO 55
20100	
20200	5517	IF(JA.EQ.0)GO TO 6221
20300	5518	X=100-JA
20400		IF(X)JA=JA/100
20500		IF(JA.LE.2)GO TO 7221
20600		IF(JA.LE.13)GO TO 324
20700		JA=JA/10
20800	C ADD 1000 TO PARAM TO MAKE EQUAL TO ANOTHER PARAM
20900		X=R2-2.
21000		RJJ(JA-2)=RJJ(X)
21100		GO TO 6222
21200	324	I1=JA-2
21300		IF(X)GO TO 224
21400		RJJ(I1)=R2
21500		GO TO 6222
21600	224	RJJ(I1)=RJJ(I1)+R2
21700		GO TO 6222
21800	
21900	7555	CALL MOVER
22000		IF(R2.EQ.99)GO TO 59
22100	C   99=BACKUP OUT OF MOVER ETC.
22200		IGO=0
22300		JFONT=0
22400	C  SO IT WON'T DO ALL FONT LOOKUPS.
22500	8853	IF(JJ2)GO TO 5505
22600		M=PWDS(JJ2)
22700		I=PWDS(ITEM+1)
22800		ITEM=JJ2-1
22900		ST2=WDS(JJ2)
23000	C SO IT DOESN'T HAVE TO GO THROUGH ALL ITEMS
23100		GO TO 8852
23200	
23300	420	REDIT=0
23400	211	IF(R2.NE.0)GO TO 320
23500		IF(KED.GE.0)RLINE=RJ3
23600		RJ3=RLINE
23700		GO TO 6222
23800	C  FOR '55' ALIGNING
23900	7221	IF(X)GO TO 4223
24000	CCC	IF(JA.EQ.2)RJJ2=R2
24100	CCC	IF(JA.EQ.1)JJA=R2
24200		CALL PARCH(JA,JJA,R2)
24300		GO TO 6222
24400	4223	RJJ2=R2+RJJ2
24500	C  ARRAYS NEED 2O LOCATIONS HERE.
24600	C CHNG PARAMS WITH PAIRS OF NUMS.(EG. 2,122  4,13  5,-2 ETC.)
24700	6222	DO 1222 K=1,20,2
24800		L=JQ(K)
24900		IF(L.EQ.0)GO TO 6221
25000	C  '600 2'  WILL ADD 2 TO PARAM 6.  '3000 6' SETS P3=P6.
25100		RD=RJQ(K+1)
25200		X=L
25300		IF(L.LT.100)GO TO 223
25400		IF(L.LT.2000)GO TO 5223
25500		X=L/1000
25600		L=JQ(K+1)-2
25700		RD=RJJ(L)
25800		GO TO 2223
25900	5223	X=L/100
26000		IF(X.EQ.2)GO TO 1223
26100		RD=RJJ(X-2)+RD
26200		GO TO 2223
26300	1223	RD=RJJ2+RD
26400	223	IF(X.LE.2)GO TO 3223
26500	2223	RJJ(X-2)=RD
26600		GO TO 1222
26700	CCC3223	IF(X.EQ.2)RJJ2=RD
26800	CCC	IF(X.EQ.1)JJA=RD   ***** PARCH CHANGES PARAMS 1 AND 2.
26900	3223	CALL PARCH(X,JJA,RD)
27000	C NOW P1 CAN BE CHANGED IN EDIT MODE -- BE CAREFUL,,,,!!!!!!
27100	1222	CONTINUE
27200	C***  LOOP SET TO 11 (20 IN ARRAY!) ONLY 13 PARAMS POSSIBLE NOW.
27300	6221	DO 5514 K=1,11
27400		RJQ(K)=RJJ(K)
27500	5514	JQ(K)=RJQ(K)
27600		R2=RJJ2
27700		JA=JJA
27800		ITEM=ITEM-1
27900		IF(ITEM)ITEM=0
28000		ST2=WDS(ITEM+1)
28100		I=PWDS(ITEM+1)
28200		CALL DPYNEW
     

00100	60	J2=R2
00200		RSTJ2=RSTFAC(J2)
00300	CL	RD=0
00400		IF(JA.NE.2)GO TO 163
00500	CJ	IF(R9.EQ.0)GO TO 163
00600		IF(R8.EQ.0)GO TO 163
00700		IF(R8.EQ.-1)GO TO 163
00800	C R8=0=AS IS; -1=WHOLE REST; >0=NUMBER OVER REST; -2=CENTERED
00900		K=ITEM
01000	C  ITEM+1 IS CURRENT ITEM IN QUICK RUN-THROUGHS.
01100		IF(X22.NE.0)K=X22-1
01200		RD=1.75*RSTJ2
01300		L=PWDS(K+2)
01400		IF(RN(L+1).NE.4)GO TO 164
01500	C  GO ON IF NEXT ISN'T BAR LINE (CODE 4. NEXT FINDS OTHER LINES!!)
01600		IF(RN(L+2).NE.R2)GO TO 164
01700		RB=RN(L+3)
01800		L=PWDS(K)
01900	C  CHECK PREV. AND NEXT ITEM.  IF NOT BAR, DON'T TRY TO CENTER!
02000		IF(RN(L+1).NE.4)GO TO 164
02100		IF(RN(L+2).NE.R2)GO TO 164
02200	C  JUMP IF NOT ON SAME STAFF
02300		RA=RN(L+3)
02400		R3=RA+(RB-RA)/2-1.75*RSTJ2
02500	164	IF(PLT.EQ.0)GO TO 160 
02600		RN(PWDS(K+1)+3)=R3
02700	C  ******* A DANGEROUS PLACE.  KEEP TRACK OF THIS
02800		GO TO 5541
02900	
03000	163	IF(JA.EQ.16)GO TO 63
03100		IF(PLT.NE.0)GO TO 5541
03200		IF(JA.NE.8)GO TO 70
03300		IF(R9.NE.1)GO TO 160
03400		L=7
03500	C  RJQ(7) IS R9
03600	71	RA=RN(MEDIT+L+2)
03700		TYPE 427,RA
03800	721	FORMAT(' TYPE INST. NAME  '$)
03900		TYPE 721
04000		ACCEPT FA5,RD
04100		RJQ(L)=RD
04200		IF(RD.NE.' ')GO TO 160
04300		IF(RN(MEDIT).LT.L)RA=0
04400	C  RESTORES NAME IF THERE WAS ONE ALREADY. ELSE=0
04500		RJQ(L)=RA
04600	C  WHEN P9=1 ASKS FOR ID NAME FOR THE STAFF (FOR PART EXTRACTOR)
04700		GO TO 160
04800	371	FORMAT(A5,A1,A3)
04900	70	IF(JA.NE.11)GO TO 160
05000	C  ↑↑↑↑ WAS - TO 63
05100		IF(J10.NE.1)GO TO 160
05200		L=8
05300	C   P10←1 GETS NAME OF BASIC DRAW FILE, PUTS IT IN P10 (NJR)
05400		GO TO 71
05500	CC	LASTNM=NJR
05600	CC62	IF(NJR.EQ.0)NJR=LASTNM
05700	C  IF NO NAME ASKED FOR, IT TAKES LAST NAME GIVEN.(SOLVES SORT PROB?)
05800	63	RD=R5
05900		IF(RD.GE.100)RD=RD-100
06000	C ADD 100 TO SZ TO MAKE TEXT APPEAR IN ALL SEPARATE PARTS OF ORCH. SCORE.
06100		IF(J10.EQ.0)GO TO 162
06200		L=ITEM
06300		IF(X22.NE.0)L=X22-1
06400		IF(J10.EQ.1)GO TO 263
06500	C ↓↓↓↓ TEMP. FIX TO CNVT TEXT FORMAT TO NEW STYLE.  "10 99"
06600		IF(J10.NE.99)GO TO 863
06700		X=PWDS(X22)+6
06800		DO 563 L=X,X+2
06900		RB=RN(L)
07000		K=RB
07100	C  CHECKS TO SEE WHICH FORMAT
07200	563	IF(K.NE.RB)GO TO 663
07300		GO TO 57
07400	663	DO 763 L=X,X+2
07500	763	RN(L)=RN(L)*100.
07600		GO TO 57
07700	
07800	C  NEXT FOR CENTERING TEXT.  P10>1
07900	863	RB=0
08000		X=PWDS(L+1)
08100	363	L=L+1
08200		K=PWDS(L)
08300		RB=RB+RN(K+9)
08400	C  ADD SPACE NEEDED
08500		K=PWDS(L+1)
08600		IF(RN(K+1).NE.16)GO TO 463
08700		IF(RN(K).EQ.8)GO TO 363
08800	C GO BACK IF MORE LETTERS TO COME
08900	463	R3=R10-(RB-3.4)*RD*RSTJ2/2.
09000	C  +3.4 IS TO COMPENSATE FOR STARTING POS. BEING IN CENTER OF LET.
09100		R10=0
09200		IF(RN(X).EQ.8)RN(X+10)=0
09300		RN(X+3)=R3
09400	C THESE ARE NEEDED FOR ITEMS CENTERED DIRECTLY FROM 'WORDS'
09500		GO TO 162
09600	263	K=PWDS(L)
09700		R3=RN(K+5)*RSTJ2*RN(K+9)+RN(K+3)
09800		R4=RN(K+4)
09900		R5=RN(K+5)
10000		R2=RN(K+2)
10100		J2=R2
10200		L=PWDS(L+1)
10300		DO 361 JJA=3,5
10400	361	RN(L+JJA)=RJQ(JJA-2)
10500		RN(L+2)=R2
10600	CCC	RN(PWDS(L+1)+3)=R3
10700	C  PUTS POS. BACK INTO RN ARRAY EVERY TIME.
10800	C  PUTS 13TH(+) LETTER IN RIGHT POS. 
10900	162	IF(PLT.NE.0)GO TO 5541
11000	CX160	IF(EDX.NE.0)GO TO 162
11100	CP	IF(I1.EQ.IP)GO TO 5541
11200	CX162	RJ3=R3
11300	160	RJ3=R3
11400		JJA=JA
11500		IF(R8.NE.0)GO TO 161
11600		IF(JA.EQ.1)R8=999.
11700	C  999=0 FOR STEM EXTENSIONS.
11800	CL161	CNT=1
11900	CL	DO 5543 K=1,9
12000	C  10/6/73 ABOVE WAS ,11
12100	CL	RA=RJQ(K)
12200	CL	IF(RA.NE.0)CNT=K
12300	CL5543	RJJ(K)=RA
12400	C  USES ONLY 10 PARAMETERS BEYOND JA, J2
12500	161	CALL MSSLUP
12600	CP2554	IF(PLT.NE.0)GO TO 5541
12700		IF(JA.NE.6)GO TO 1261
12800		IF(J13.EQ.0)GO TO 171
12900		R2=X22
13000		X22=0
13100		R3=R13
13200		J3=J13
13300		R4=R11
13400	C  RESET HOMING RANGE (DEFAULT=3) WITH P11.
13500		CALL CLRCUR
13600		R13=0
13700	C  TYPE 13, n WITH BEAMS TO ADJUST IN RE. TO OTHER STAFF(LIKE OLD 'AD')
13800		JA=19
13900		GO TO 271
14000	171	CALL HOMER
14100	CC	IF(JA.NE.13)GO TO 1261
14200	CC	IF(J6.NE.0)R13=-1
14300	
14400	1261	IF(R13.EQ.0)GO TO 261
14500		RD=R11
14600		CALL HOMER
14700		R11=RD
14800	C  R11 GETS CHANGED IN 'HOMER'
14900		IF(JA.EQ.10)R3=R3+RSTJ2
15000		IF(JA.NE.9)GO TO 261
15100		IF(J5.GT.3)GO TO 261
15200		CALL NOZERO(R6)
15300		R3=R3+RSTJ2+2.*RSTJ2*R6
15400	C ABOVE HELPS CENTER NUMBERS UNDER NOTES(BECAUSE R3 IS AT CENTR OF NUM)
15500	C  IF P13≠0 ANY ITEM WILL LINE UP WITH ANY OTHER ITEM. P13 IS RESET=0
15600	C  P13=-1 POSITIONS ITEM ABOVE OR BELOW NOTE, =-2 JUST BEYOND STEM.
15700	C CODE 10 (NUMBERS) SPACED TO LEFT AS WELL AS CODE 9, P5=1,2,3 (FLAT,SHRP,NAT)
15800	C **** FOR '0' EDITS ******
15900	CL261	RN(I)=CNT
16000	CL	RN(I+1)=JA
16100	CL	I=I+2
16200	CL	RN(I)=R2
16300	CL	IF(RD.NE.0)RN(I)=RD
16400	C TO SAVE NOTE NUMBS IN P2.
16500	CL	DO 4554 K=1,CNT
16600	CL4554	RN(I+K)=RJQ(K)
16700	CL3554	I=CNT+1+I
16800	261	CALL LUP2
16900	5541	IF(DP(J2))GO TO 57
17000	C*** 3/74  NEW DP SYSTEM
17100	C  WHAT ABOUT EDITS?*******
17200		POS=STFF(J2)
17300		RX3=R3
17400	C  SAVES IT IN RJQ(20) FOR OTHER ROUTINES.
17500		J3=ROFF(RHORZ(R3))
17600	C  LINE IS DIVIDED INTO 200 POINTS.
17700		CALL CENTX
17800	C  SETS VERT.(CENTR) POSITION BASED ON STAFF AND R4
17900		R3=J3
18000		IF(JA.LE.2)GO TO 11
18100	551	GO TO(1,1,68,25,67, 625,116,125,11,69, 68,12),JA
18200		GO TO (116,81,80),JA-15
18300	C  FOR 16,17,18 (WORDS, KSIG, METER)
18400		IF(JA.EQ.99)GO TO 57
18500	C    FOR PART EXTRACTOR TRANSPOSER - KEY SIG=0
18600		IF(JA.NE.33.AND.JA.NE.44)GO TO 222
18700		JA=JA/11
18800	C  THIS IS TEMPORARY - TO READ PAGE TEMP. FILES.
18900		GO TO 551
19000	
19100	222	I=PWDS(ITEM+1)
19200		GO TO 5505
19300	C  44 1; JFONT=ONE DISPLAYS FONTS - THIS ALSO CATCHES SOME TYPOS
19400	
19500	69	CALL MAKNUM(R5)
19600		GO TO 57
19700	
19800	68	CALL CLEFS
19900		GO TO 57
20000	
20100	67	CALL SLUR
20200		GO TO 57
20300	
20400	116	CALL ALPHA
20500		GO TO 57
20600	
20700	81	CALL KSIG
20800		GO TO 57
20900	
21000	80	CALL METER
21100		GO TO 57
21200	
21300	125	IF(R2.EQ.0)RMOV=R8
21400		CALL STAFF
21500		GO TO 57
21600	625	CALL BMSTF
21700		GO TO 57
21800	C   BEAMS, STAFF LINES ****
21900	12	CALL CIRCLE
22000		GO TO 57
22100	
22200	25	CALL ITMSUB
22300	C   BAR LINES, ETC.
22400		GO TO 57
22500	
22600	C  TO GET DISPLAY: 'G'; 'GM'  ADDS TO DPY; 
22700	120	IF(I.EQ.1)GO TO 1220
22800		IF(I2.NE.IM)GO TO 222
22900	C  'GM'=GET MORE
23000	1220	CALL FORMAT(NAME)
23100	C  NOW TYPE 'G NAME' OR 'GM NAME'
23200		IF(NAME.NE.IBL)GO TO 1221
23300	1225	TYPE 21
23400		ACCEPT 371,NAME,J,J
23500		IF(NAME.EQ.'99')GO TO 5505
23600		IF(NAME.EQ.IBL)GO TO 2220
23700		IF(J.NE.IBL)EXT=J
23800	1221	IF(LOOKX(NAME,EXT).EQ.0)GO TO 1225
23900	C  FUNC. LOOKD IS 'FAIL' PROG. TO CHECK ON LOOKUPS
24000	2220	JA=-1
24100	C  -1 IS FOR 8852+3
24200	2200	J=ITEM+1
24300		IF(NAME.NE.IBL)GO TO 2207
24400		CALL GETEXT('TMP','DMD')
24500		GO TO 2202
24600	2207	CALL GETEXT(NAME,EXT)
24700	2202	CALL EXTIN(RSTFAC,128)
24800		CALL EXTIN(PWDS(J),JJ2)
24900		CALL EXTIN(RN(I),IPOS)
25000		IF(LCNT.GT.1)CALL EXTIN(LIST,LCNT)
25100	C (K) BUG IN FORTRAN UNFORMATTED READ-WRITE. SOMETIMES LAST ITEMS WRONG.
25200		ITEM=ITEM+JJ2-2
25300		IF(I2.EQ.IM)GO TO 2203
25400		I=IPOS
25500		IF(RSTF.EQ.0)GO TO 85
25600	C  (END OF V ARRAY)RSTF=-1 MEANS READ THE DPY BUFFER 
25700		CALL EXTIN(ST,4250)
25800		CALL DPYNEW
25900		GO TO 5505
26000	
26100	2203	M=I-1
26200		DO 2204 K=J,J+JJ2-2
26300	2204	PWDS(K)=PWDS(K)+M
26400		GO TO 85
26500		M=IX
26600	C  IF P5=0 MOVES UP AT START, IF P6=0 MOVES UP AT END.
26700	C  (J8) P8=1 OR 2 FOR 2-PASS PLOTS
26800	C   1.24 AND 1.2 ARE TO FIT 8 1/2 X 11 FORMAT
26900	C RMOV HAS INCHES FROM P8 OF STAFF 0.
27000	C  R6=1 FOR NO MOVE AT END.  R7=INCHES TO MOVE FOR NEW STAFF 0.
27100	C RE. R7:DISTANCE IS MEASURED FROM BOTTOM LINE OF STANDARD POSITION
27200	C OF STAFF 0 UP TO LOWEST!! POINT FOUND IN FOLLOWING FILE.  THEN
27300	C NEXT SHIFT IS AGAIN FROM STANDARD STF.0 TO NEXT FILE'S LOW POINT.
27400	C  MOVES PLOTTER UP IF P5=0.
27500	
27600	C  NEXT RUNS THROUGH DATA WITH NEW CHANGES.
27700	6120	IF(M.GE.I)GO TO 7120
27800		IF(IGO.EQ.0)GO TO 7121
27900	C USE "Z" TO DO FIXUP WHEN LIST IS SCRAMBLED !?X@!ZQ
28000		IF(M.EQ.PWDS(ITEM+1))GO TO 7121
28100		K=ITEM+1
28200		TYPE 7122,K
28300		PWDS(K)=M
28400	7121	CALL RUNTHR(M)
28500		IF(EDX.LE.0)GO TO 60
28600		GO TO 5505
28700	7122	FORMAT(' FIXING ITEM ',I3)
28800	
28900	7120	M=1
29000		IF(PLT.EQ.1)EDX=-1
29100		PLT=0
29200		GO TO 5505
29300	C  ALWAYS START PLOT WITH BOTTOM UNIT ON PAGE AND WORK UP.
29400	
29500	56	FORMAT(/1XA5,'  TYPE FOR ITEM #',I3,I,I6/)
29600	1	FORMAT(I,24F)
29700	21	FORMAT(' NAME.EXT?  '$)
29800		END